package cn.demoncat.util.redis.entity;

/**
 * Redis 延时队列 常量
 *
 * 场景：由RedisDelayUtil管理的缓存
 * 
 * @author 延晓磊
 *
 * @since 2020年1月15日
 */
public class RedisDelay {

	// 默认队列前缀名
	public static final String DELAY_NAME = "DELAY:";

	// 缓存键
	private String key;
	// 消费间隔秒数
	private int exp = 1;

	public RedisDelay() {
		super();
	}

	/**
	 * 常量
	 *
	 * @param key	键
	 * @param exp	消费间隔秒数
	 *
	 * @author 延晓磊
	 *
	 * @since 2020年1月15日
	 */
	public RedisDelay(String key, int exp) {
		super();
		this.setKey(key);
		this.setExp(exp);
	}

	/**
	 * 常量
	 *
	 * @param key	键
	 *
	 * @author 延晓磊
	 *
	 * @since 2020年1月15日
	 */
	public RedisDelay(String key) {
		super();
		this.setKey(key);
		this.exp = 1;
	}

	public String getKey() {
		return key;
	}

	/**
	 * 设置缓存键
	 *
	 * @param key
	 */
	public RedisDelay setKey(String key) {
		if (key.startsWith(DELAY_NAME)) {
			this.key = key;
		}else{
			this.key = DELAY_NAME + key;
		}
		return this;
	}

	public int getExp() {
		return exp;
	}

	/**
	 * 设置消费间隔秒数
	 *
	 * @param exp	消费间隔秒数
	 * @return
	 */
	public RedisDelay setExp(int exp) {
		if (exp < 1) {
			exp = 1;
		}
		this.exp = exp;
		return this;
	}
}
